﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>SettingsControl</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>SettingsControl</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="index.html">сервисные функции</a> |
<a href="../settingapi/index.html">Settings API</a>
</div>

<div class=shortdescr>
Функция <code>SettingsControl</code> позволяет управлять загрузкой настроек из базы данных плагина или Far Manager, а также сохранением настроек в базу данных плагина.
<p class=note><img src="../../images/note.gif" alt="Замечание для SettingsControl" width="10" height="10">Внимание!</p>
<UL class=note><LI>В обязательном порядке используйте эту функцию для портабельности плагина, вместо работы с реестром!</LI></UL>
</div>

<pre class=syntax>
intptr_t WINAPI SettingsControl(
  HANDLE hHandle,
  enum FAR_SETTINGS_CONTROL_COMMANDS Command,
  intptr_t Param1,
  void *Param2
);
</pre>

<h3>Параметры</h3>
<div class=descr>
  <div class=dfn>hHandle</div>
    <div class=dfndescr>Смотрите описание <code>Command</code>.</div>
  <div class=dfn>Command</div>
    <div class=dfndescr>Может быть одним из следующих значений (перечисление <a name="FAR_SETTINGS_CONTROL_COMMANDS">FAR_SETTINGS_CONTROL_COMMANDS</a>):
    <table class="cont">
    <tr class="cont"><th class="cont" width="40%">Команда</th><th class="cont" width="60%">Описание</th></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_CREATE">SCTL_CREATE</a></td>
    <td class="cont" width="60%">Создаёт объект "настройки" для заданного плагина.<br>
    <code>hHandle</code> должен быть установлен в значение <code>INVALID_HANDLE_VALUE</code>.<br>
    <code>Param1</code> указывает способ хранения настройки (перечисление <a name="FAR_PLUGIN_SETTINGS_LOCATION">FAR_PLUGIN_SETTINGS_LOCATION</a>):
    <table class="cont">
    <tr class="cont"><th class="cont" width="40%">Константа</th><th class="cont" width="60%">Описание</th></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="PSL_ROAMING">PSL_ROAMING</a></td>
    <td class="cont" width="60%">в перемещаемом профиле</td></tr>
    <tr class="cont"><td class="cont" width="40%"><a name="PSL_LOCAL">PSL_LOCAL</a></td>
    <td class="cont" width="60%">в локальном профиле</td></tr>
    </table>
    <code>Param2</code> указатель на структуру <a href="../structures/farsettingscreate.html">FarSettingsCreate</a> (поле <code>FarSettingsCreate.Guid</code> должно быть заполнено).<br>
    Функция при неудаче вернёт <code>FALSE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_FREE">SCTL_FREE</a></td>
    <td class="cont" width="60%">Удалить объект "настройки" для заданного плагина.<br>
    <code>hHandle</code> описатель настроек, созданный по команде <code>SCTL_CREATE</code> (поле <code>FarSettingsCreate.Handle</code>).<br>
    <code>Param1</code> и <code>Param2</code> игнорируются. <br>
    Функция возвращает <code>TRUE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_SET">SCTL_SET</a></td>
    <td class="cont" width="60%">Сохранить настройки.<br>
    <code>hHandle</code> описатель настроек, созданный по команде <code>SCTL_CREATE</code> (поле <code>FarSettingsCreate.Handle</code>).<br>
    <code>Param1</code> игнорируется. <code>Param2</code> указатель на структуру <a href="../structures/farsettingsitem.html">FarSettingsItem</a>.<br>
    Функция при неудаче вернёт <code>FALSE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_GET">SCTL_GET</a></td>
    <td class="cont" width="60%">Загрузить настройки.<br>
    <code>hHandle</code> описатель настроек, созданный по команде <code>SCTL_CREATE</code> (поле <code>FarSettingsCreate.Handle</code>).<br>
    <code>Param1</code> игнорируется. <code>Param2</code> указатель на структуру <a href="../structures/farsettingsitem.html">FarSettingsItem</a>.<br>
    Функция при неудаче вернёт <code>FALSE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_CREATESUBKEY">SCTL_CREATESUBKEY</a></td>
    <td class="cont" width="60%">Открыть ключ настроек. Если такого ключа нет, то создать его.<br>
    <code>hHandle</code> описатель настроек, созданный по команде <code>SCTL_CREATE</code> (поле <code>FarSettingsCreate.Handle</code>).<br>
    <code>Param1</code> игнорируется. <code>Param2</code> указатель на структуру <a href="../structures/farsettingsvalue.html">FarSettingsValue</a>.<br>
    Функция возвращает уровень вложенности ключа (!! требуется уточнение !!).</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_OPENSUBKEY">SCTL_OPENSUBKEY</a></td>
    <td class="cont" width="60%">Открыть существующий ключ настроек.<br>
    <code>hHandle</code> описатель настроек, созданный по команде <code>SCTL_CREATE</code> (поле <code>FarSettingsCreate.Handle</code>).<br>
    <code>Param1</code> игнорируется. <code>Param2</code> указатель на структуру <a href="../structures/farsettingsvalue.html">FarSettingsValue</a>.<br>
    Функция возвращает уровень вложенности ключа (!! требуется уточнение !!).</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_ENUM">SCTL_ENUM</a></td>
    <td class="cont" width="60%">Получить список подключей и значений.<br>
    <code>hHandle</code> описатель настроек, созданный по команде <code>SCTL_CREATE</code> (поле <code>FarSettingsCreate.Handle</code>).<br>
    <code>Param1</code> игнорируется. <code>Param2</code> указатель на структуру <a href="../structures/farsettingsenum.html">FarSettingsEnum</a>.<br>
    Функция при неудаче вернёт <code>FALSE</code>.</td></tr>

    <tr class="cont"><td class="cont" width="40%"><a name="SCTL_DELETE">SCTL_DELETE</a></td>
    <td class="cont" width="60%">Удалить подключ или значение.<br>
    <code>hHandle</code> описатель настроек, созданный по команде <code>SCTL_CREATE</code> (поле <code>FarSettingsCreate.Handle</code>).<br>
    <code>Param1</code> игнорируется. <code>Param2</code> - указатель на структуру <a href="../structures/farsettingsvalue.html">FarSettingsValue</a>.<br>
    Функция при неудаче вернёт <code>FALSE</code>.</td></tr>

    </table>
    </div>
  <div class=dfn>Param1</div>
    <div class=dfndescr>Указывает на <code>Параметр1</code> команды. Смотрите описание <code>Command</code>.</div>
  <div class=dfn>Param2</div>
    <div class=dfndescr>Указывает на <code>Параметр2</code> команды. Смотрите описание <code>Command</code>.</div>
</div>


<h3>Возвращаемое значение</h3>
<div class=descr>
Смотрите описание <code>Command</code>.
</div>

<h3>Пример</h3>
<pre class=code>
</pre>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="panelcontrol.html">PanelControl</a></div>

</body>
</html>